A computing system can include processing devices (e.g., microprocessors, etc.), which are increasing in complexity, core count, cache size, number, etc. With this increase, the processing devices can become more susceptible to errors. An error can be detected by error detection logic in the computing system. An error can be a hard error, can result from the value of a bit of memory (e.g., DRAM) spontaneously flipping to the opposite state (e.g., 0 to 1 or 1 to 0), etc. The errors can result from one-time upsets caused by local radiation, errors due to one-time upsets caused by cosmic radiation, hard errors, etc. Some of the errors may be recoverable, while other errors may not be recoverable. The errors that are not recoverable may be contained to prevent the error from stopping the computing system.
The decision on recovery and actions to minimize the scope of program disruption due to uncorrected error falls on software. A standardized means of reporting error information is required although hardware implementations may be different. A machine check architecture provides a standardized means to report errors to software.